home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagn_r.zip / NUMBERS.SWG / 0045_Improved Decimal To Binar.pas < prev    next >
Pascal/Delphi Source File  |  1994-05-25  |  804b  |  40 lines

  1.  
  2. {Convert a Decimal to a String - Maximum number of bits = 16}
  3.  
  4. Function Dec2Bin (D: Word; No_Bits: Byte): String;
  5. Var A   : Word;
  6.     L   : Byte;
  7.     S   : String;
  8. Begin
  9.    S := '';
  10.    A := Trunc (Exp ((No_Bits-1)*Ln (2)));
  11.    For L := No_Bits downto 1 do
  12.    Begin
  13.       A := A div 2;
  14.       If (D AND A)=A then S := S+'1' else S := S+'0';
  15.    End;
  16.    Dec2Bin := S;
  17. End;
  18.  
  19. (*------------------------------------------------------*)
  20. Function BinStr(num:word;bits:byte):string; assembler;
  21. ASM
  22.       PUSHF
  23.       LES  DI, @Result
  24.       XOR  CH, CH
  25.       MOV  CL, bits
  26.       MOV  ES:[DI], CL
  27.       JCXZ @@3
  28.       ADD  DI, CX
  29.       MOV  BX, num
  30.       STD
  31. @@1:  MOV  AL, BL
  32.       AND  AL, $01
  33.       OR   AL, $30
  34.       STOSB
  35.       SHR  BX, 1
  36.       LOOP @@1
  37. @@3:  POPF
  38. End;
  39.  
  40.